
from django.db import models
import django.utils.timezone as timezone


# Create your models here.

class Status(models.TextChoices):
    UNSTARTED = 'p', "Not started yet"
    ONGOING = 'o', "Ongoing"
    FINISHED = 'f', "Finished"


class Task_result(models.Model):
    """
    db_index:     为True时，为字段创建索引
    primary_key:    为True时，字段为模型的主键，为字段创建索引
    unique:     为True时，为字段创建唯一索引。
    """
    # 任务ID
    taskid = models.CharField(verbose_name="task_id", max_length=150, default="")
    # 状态
    status = models.CharField(verbose_name="status", max_length=50, choices=Status.choices)

    # 新增字段 类型  自动 0 手动1
    flag = models.CharField(verbose_name='flag', max_length=10, default='')
    # 创建时间
    # auto_now_add 默认值为False，若设置为True，model每次进行新增操作，都会自动设置该字段的值为操作时间。
    # 设置为True后无法使用ORM手动修改该字段，哪怕填充了字段的值也会被覆盖
    create_timestamp = models.DateTimeField('创建时间', default=timezone.now)
    # auto_now=True  默认值为False，若设置为True，model每次进行新增或修改操作，都会自动设置该字段的值为操作时间。
    # 设置为True后无法使用ORM手动修改该字段，哪怕填充了字段的值也会被覆盖。
    update_time = models.DateTimeField('更新时间', auto_now=True)
    result = models.CharField(verbose_name='result_url',max_length=300,default='')

    class Meta:
        db_table = "task_result"  # 基础类设置为抽象模型，不会生成实际数据库表

    def __str__(self):
        return self.taskid, self.status


class Use_testcase(models.Model):
    '''
    用例
    '''
    title = models.CharField(verbose_name="title", max_length=150)  # 标题
    presets = models.CharField(verbose_name="presets", max_length=150)  # 预置条件
    steps = models.CharField(verbose_name="steps", max_length=350)  # 步骤
    anticipate = models.CharField(verbose_name="anticipate", max_length=150)  # 预期结果
    results = models.CharField(verbose_name="results", max_length=150)  # 测试结果
    createname = models.CharField(max_length=255, default='', verbose_name='创建人')  # 创建人
    is_active = models.BooleanField(default=False, verbose_name='激活状态')  # 当前状态
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')  # 创建时间
    update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')  # 更新时间
    # 新增加0426
    mod = models.CharField(verbose_name='model', max_length=150, blank=True, null=True)  # 模块

    class Meta:
        db_table = "Use_testcase"

    def __str__(self):
        return self.mod, self.title, self.steps, self.anticipate
